﻿Public Class Frm_Parametre

    'Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    '    If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
    '        txt_kasa.Text = SaveFileDialog1.FileName
    '    End If
    'End Sub

    'Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    '    If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
    '        txt_terazi.Text = SaveFileDialog1.FileName
    '    End If
    'End Sub

    Public Sub New()
        InitializeComponent()
        CmbKasaTipi.Items.AddRange([Enum].GetNames(GetType(KasaTipi)))
        CmbTeraziTipi.Items.AddRange([Enum].GetNames(GetType(TeraziTip)))
        CmbProgramTipi.Items.AddRange([Enum].GetNames(GetType(ProgramTipleri)))
        CmbCalismaSekli.Items.AddRange([Enum].GetNames(GetType(CalismaTipi)))
    End Sub

    Private Sub Ayar_kaydet()

        Dim dic As New Dictionary(Of ProgramAyarlari, Object)
        For i As Integer = 0 To VGridControl1.Rows.Count - 1
            If VGridControl1.Rows(i).Properties.FieldName <> "" Then
                dic.Add([Enum].Parse(GetType(ProgramAyarlari), VGridControl1.Rows(i).Properties.FieldName), VGridControl1.Rows(i).Properties.Value)
            End If
        Next

        If dic.ContainsKey(ProgramAyarlari.Sql_Server) Then Sql_Server = dic(ProgramAyarlari.Sql_Server)
        If dic.ContainsKey(ProgramAyarlari.Database_Name) Then Database_Name = dic(ProgramAyarlari.Database_Name)
        If dic.ContainsKey(ProgramAyarlari.Depo_Kod) Then Depo_Kod = dic(ProgramAyarlari.Depo_Kod)
        If dic.ContainsKey(ProgramAyarlari.Servis_Url) Then Servis_Url = dic(ProgramAyarlari.Servis_Url)
        If dic.ContainsKey(ProgramAyarlari.Kasa_yolu) Then Kasa_yolu = dic(ProgramAyarlari.Kasa_yolu)
        If dic.ContainsKey(ProgramAyarlari.Terazi_Yolu) Then Terazi_Yolu = dic(ProgramAyarlari.Terazi_Yolu)
        If dic.ContainsKey(ProgramAyarlari.Yazici_Yolu) Then Yazici_Yolu = dic(ProgramAyarlari.Yazici_Yolu)
        If dic.ContainsKey(ProgramAyarlari.Etiket_Miktari) Then Etiket_Miktari = dic(ProgramAyarlari.Etiket_Miktari)
        If dic.ContainsKey(ProgramAyarlari.Kasa_Kod) Then Kasa_Kod = dic(ProgramAyarlari.Kasa_Kod)
        If dic.ContainsKey(ProgramAyarlari.Uzak_kasa_yol) Then Uzak_kasa_yol = dic(ProgramAyarlari.Uzak_kasa_yol)
        If dic.ContainsKey(ProgramAyarlari.SatisDosyaAdi) Then SatisDosyaAdi = dic(ProgramAyarlari.SatisDosyaAdi)
        If dic.ContainsKey(ProgramAyarlari.Kasa_Tipi) Then Kasa_Tipi = [Enum].Parse(GetType(KasaTipi), dic(ProgramAyarlari.Kasa_Tipi))
        If dic.ContainsKey(ProgramAyarlari.Pasif_Stok_Aktarilsin) Then Pasif_Stok_Aktarilsin = dic(ProgramAyarlari.Pasif_Stok_Aktarilsin)
        If dic.ContainsKey(ProgramAyarlari.Opa_Yol) Then Opa_Yol = dic(ProgramAyarlari.Opa_Yol)
        If dic.ContainsKey(ProgramAyarlari.SatisDepoKod) Then SatisDepoKod = dic(ProgramAyarlari.SatisDepoKod)
        If dic.ContainsKey(ProgramAyarlari.HalkDepoKod) Then HalkDepoKod = dic(ProgramAyarlari.HalkDepoKod)
        If dic.ContainsKey(ProgramAyarlari.HalkGunu) Then HalkGunu = dic(ProgramAyarlari.HalkGunu)
        If dic.ContainsKey(ProgramAyarlari.ProgramTipi) Then ProgramTipi = [Enum].Parse(GetType(ProgramTipleri), dic(ProgramAyarlari.ProgramTipi))
        If dic.ContainsKey(ProgramAyarlari.CalismaSekli) Then CalismaSekli = [Enum].Parse(GetType(CalismaTipi), dic(ProgramAyarlari.CalismaSekli))
        If dic.ContainsKey(ProgramAyarlari.ImportsFile) Then ImportsFile = dic(ProgramAyarlari.ImportsFile)
        If dic.ContainsKey(ProgramAyarlari.TeraziTipi) Then TeraziTipi = [Enum].Parse(GetType(TeraziTip), dic(ProgramAyarlari.TeraziTipi))
        If dic.ContainsKey(ProgramAyarlari.otosendTime) Then otoSendTime = dic(ProgramAyarlari.otosendTime)
        If dic.ContainsKey(ProgramAyarlari.KdvSiralamasi) Then KdvSiralamasi = dic(ProgramAyarlari.KdvSiralamasi)
        If dic.ContainsKey(ProgramAyarlari.fiyatGruplari) Then fiyatGruplari = dic(ProgramAyarlari.fiyatGruplari)

        Dim obj As MikroMagazaObject.SettingsObject = MikroMagazaObject.Settings.Get
        obj.Sql_Server = Sql_Server
        obj.Database_Name = Database_Name
        obj.Merkez_Depo_Kodu = Merkez_Depo_Kodu
        obj.Firma_Kod = Firma_Kod
        obj.Donem_Kod = Donem_Kod
        obj.Depo_Kod = Depo_Kod
        obj.Servis_Url = Servis_Url
        obj.Yazici_Yolu = Yazici_Yolu
        obj.Terazi_Yolu = Terazi_Yolu
        obj.Kasa_yolu = Kasa_yolu
        obj.Etiket_Miktari = Etiket_Miktari
        obj.Kasa_Tipi = Kasa_Tipi
        obj.Pasif_Stok_Aktarilsin = Pasif_Stok_Aktarilsin
        obj.Opa_Yol = Opa_Yol
        obj.Kasa_Kod = Kasa_Kod
        obj.Uzak_kasa_yol = Uzak_kasa_yol
        obj.SatisDosyaAdi = SatisDosyaAdi
        obj.SatisDepoKod = SatisDepoKod
        obj.HalkDepoKod = HalkDepoKod
        obj.HalkGunu = HalkGunu
        obj.ProgramTipi = ProgramTipi
        obj.CalismaSekli = CalismaSekli
        obj.ImportsFile = ImportsFile
        obj.TeraziTipi = TeraziTipi
        obj.otoSendTime = otoSendTime
        obj.KdvSiralamasi = KdvSiralamasi
        obj.fiyatGruplari = fiyatGruplari
        MikroMagazaObject.Settings.SaveSettings()

        MsgBox("Kaydedildi")
    End Sub

    Private Sub RowSetValue(ByVal ayar As ProgramAyarlari, ByVal deger As Object)
        For i As Integer = 0 To VGridControl1.Rows.Count - 1
            If VGridControl1.Rows(i).Properties.FieldName = ayar.ToString() Then
                VGridControl1.Rows(i).Properties.Value = deger
            End If
        Next
    End Sub


    Private Sub Ayar_Oku()

        Dim devam As Boolean = False

        If System.IO.File.Exists(Application.StartupPath & "\settings.bin") Then
            Dim obj As MikroMagazaObject.SettingsObject = MikroMagazaObject.Settings.Get
            Sql_Server = obj.Sql_Server
            Database_Name = obj.Database_Name
            Merkez_Depo_Kodu = obj.Merkez_Depo_Kodu
            Firma_Kod = obj.Firma_Kod
            Donem_Kod = obj.Donem_Kod
            Depo_Kod = obj.Depo_Kod
            Servis_Url = obj.Servis_Url
            Yazici_Yolu = obj.Yazici_Yolu
            Terazi_Yolu = obj.Terazi_Yolu
            Kasa_yolu = obj.Kasa_yolu
            Etiket_Miktari = obj.Etiket_Miktari
            Kasa_Tipi = obj.Kasa_Tipi
            Pasif_Stok_Aktarilsin = obj.Pasif_Stok_Aktarilsin
            Opa_Yol = obj.Opa_Yol
            Kasa_Kod = obj.Kasa_Kod
            Uzak_kasa_yol = obj.Uzak_kasa_yol
            SatisDosyaAdi = obj.SatisDosyaAdi
            SatisDepoKod = obj.SatisDepoKod
            HalkDepoKod = obj.HalkDepoKod
            HalkGunu = obj.HalkGunu
            ProgramTipi = obj.ProgramTipi
            CalismaSekli = obj.CalismaSekli
            ImportsFile = obj.ImportsFile
            TeraziTipi = obj.TeraziTipi
            otoSendTime = obj.otoSendTime
            KdvSiralamasi = obj.KdvSiralamasi
            fiyatGruplari = obj.fiyatGruplari
            devam = True
        Else
            If System.IO.File.Exists(Application.StartupPath & "\Ayarlar.xml") Then
                Dim AyarDs As New DataSet
                AyarDs.ReadXml(Application.StartupPath & "\Ayarlar.xml")
                System.IO.File.Delete(Application.StartupPath & "\Ayarlar.xml")

                If AyarDs.Tables(0).Rows.Count > 0 Then

                    Sql_Server = AyarDs.Tables("AYARLAR").Rows(0)("A1")
                    Database_Name = AyarDs.Tables("AYARLAR").Rows(0)("A2")
                    Depo_Kod = AyarDs.Tables("AYARLAR").Rows(0)("A3")
                    RowSetValue(ProgramAyarlari.Depo_Kod, Depo_Kod)
                    Servis_Url = AyarDs.Tables("AYARLAR").Rows(0)("A4")
                    Kasa_yolu = AyarDs.Tables("AYARLAR").Rows(0)("A5")
                    Terazi_Yolu = AyarDs.Tables("AYARLAR").Rows(0)("A6")
                    Yazici_Yolu = AyarDs.Tables("AYARLAR").Rows(0)("A7")
                    Etiket_Miktari = AyarDs.Tables("AYARLAR").Rows(0)("A8")
                    Kasa_Kod = AyarDs.Tables("AYARLAR").Rows(0)("A9")
                    Uzak_kasa_yol = AyarDs.Tables("AYARLAR").Rows(0)("A10")
                    SatisDosyaAdi = AyarDs.Tables("AYARLAR").Rows(0)("A11")
                    Kasa_Tipi = [Enum].Parse(GetType(KasaTipi), AyarDs.Tables("AYARLAR").Rows(0)("A12"))
                    Pasif_Stok_Aktarilsin = AyarDs.Tables("AYARLAR").Rows(0)("A13")
                    Opa_Yol = AyarDs.Tables("AYARLAR").Rows(0)("A14")
                    If AyarDs.Tables("AYARLAR").Columns.Contains("A15") = True Then
                        SatisDepoKod = AyarDs.Tables("AYARLAR").Rows(0)("A15")
                    End If
                    If AyarDs.Tables("AYARLAR").Columns.Contains("A16") = True Then
                        HalkDepoKod = AyarDs.Tables("AYARLAR").Rows(0)("A16")
                    End If

                    If AyarDs.Tables("AYARLAR").Columns.Contains("A17") = True Then
                        HalkGunu = AyarDs.Tables("AYARLAR").Rows(0)("A17")
                    End If

                    If AyarDs.Tables("AYARLAR").Columns.Contains("A18") = True Then
                        ProgramTipi = [Enum].Parse(GetType(ProgramTipleri), AyarDs.Tables("AYARLAR").Rows(0)("A18"))
                    End If

                    If AyarDs.Tables("AYARLAR").Columns.Contains("A19") = True Then
                        CalismaSekli = [Enum].Parse(GetType(CalismaTipi), AyarDs.Tables("AYARLAR").Rows(0)("A19"))
                    Else
                        CalismaSekli = CalismaTipi.Servis
                    End If

                    If AyarDs.Tables("AYARLAR").Columns.Contains("A20") = True Then
                        ImportsFile = AyarDs.Tables("AYARLAR").Rows(0)("A20")
                    End If

                    If AyarDs.Tables("AYARLAR").Columns.Contains("A21") = True Then
                        TeraziTipi = [Enum].Parse(GetType(TeraziTip), AyarDs.Tables("AYARLAR").Rows(0)("A21"))
                    End If

                    If AyarDs.Tables("AYARLAR").Columns.Contains("A22") = True Then
                        otoSendTime = AyarDs.Tables("AYARLAR").Rows(0)("A22")
                    End If

                    If AyarDs.Tables("AYARLAR").Columns.Contains("A23") = True Then
                        KdvSiralamasi = AyarDs.Tables("AYARLAR").Rows(0)("A23")
                    End If

                    If AyarDs.Tables("AYARLAR").Columns.Contains("A24") = True Then
                        fiyatGruplari = AyarDs.Tables("AYARLAR").Rows(0)("A24")
                    End If

                    devam = True
                End If
            End If
        End If

        If devam Then
            RowSetValue(ProgramAyarlari.Sql_Server, Sql_Server)
            RowSetValue(ProgramAyarlari.Database_Name, Database_Name)
            RowSetValue(ProgramAyarlari.Servis_Url, Servis_Url)
            RowSetValue(ProgramAyarlari.Kasa_yolu, Kasa_yolu)
            RowSetValue(ProgramAyarlari.Depo_Kod, Depo_Kod)
            RowSetValue(ProgramAyarlari.Terazi_Yolu, Terazi_Yolu)
            RowSetValue(ProgramAyarlari.Yazici_Yolu, Yazici_Yolu)
            RowSetValue(ProgramAyarlari.Etiket_Miktari, Etiket_Miktari)
            RowSetValue(ProgramAyarlari.Kasa_Kod, Kasa_Kod)
            RowSetValue(ProgramAyarlari.Uzak_kasa_yol, Uzak_kasa_yol)
            RowSetValue(ProgramAyarlari.SatisDosyaAdi, SatisDosyaAdi)
            RowSetValue(ProgramAyarlari.Kasa_Tipi, Kasa_Tipi.ToString())
            RowSetValue(ProgramAyarlari.Pasif_Stok_Aktarilsin, Pasif_Stok_Aktarilsin)
            RowSetValue(ProgramAyarlari.Opa_Yol, Opa_Yol)
            RowSetValue(ProgramAyarlari.SatisDepoKod, SatisDepoKod)
            RowSetValue(ProgramAyarlari.HalkDepoKod, HalkDepoKod)
            RowSetValue(ProgramAyarlari.HalkGunu, HalkGunu)
            RowSetValue(ProgramAyarlari.ProgramTipi, ProgramTipi.ToString())
            RowSetValue(ProgramAyarlari.CalismaSekli, CalismaSekli.ToString())
            RowSetValue(ProgramAyarlari.ImportsFile, ImportsFile)
            RowSetValue(ProgramAyarlari.TeraziTipi, TeraziTipi.ToString())
            RowSetValue(ProgramAyarlari.otosendTime, otoSendTime.ToString())
            RowSetValue(ProgramAyarlari.KdvSiralamasi, KdvSiralamasi.ToString())
            RowSetValue(ProgramAyarlari.fiyatGruplari, fiyatGruplari)
        End If
    End Sub

    Private Sub Frm_Parametre_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        CmbGunler.Items.AddRange([Enum].GetNames(GetType(Gunler)))
        For Each g As String In [Enum].GetNames(GetType(Gunler))
            CmbChkGunler.Items.Add(g, CheckState.Unchecked)
        Next
        Ayar_Oku()
    End Sub
    Private Sub SimpleButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SimpleButton1.Click
        Ayar_kaydet()
    End Sub
End Class